#ifndef IO1D_H
#define IO1D_H

#include <string>
#include <vector>

#include "../IO/IO.h"
#include "../Diagnostic/Diagnostic1D.h"
#include "../ParticleSource/ParticleSourceFactory.h"

using namespace std;


class IO1D : public IO
{
public:

    IO1D(PicParams* params_, ParallelMPI* pmpi_);

    ~IO1D();

    virtual void write( PicParams* params_, ParallelMPI* pmpi_, PhysicalField* fields, vector<Species*>& vecSpecies, Diagnostic* diag, int itime);

    virtual void read( PicParams* params_, ParallelMPI* pmpi_, PhysicalField* fields, vector<Species*>& vecSpecies, Diagnostic* diag, int itime){};

    //create field h5 file pattern
    virtual void createFieldsGroup();

    //create diagstic h5 file pattern
    virtual void createDiagsGroup();

    //write grid to grid.h5 file
    virtual void writeGrid(Grid* grid){};

    //read grid from grid.h5 file
    virtual void readGrid(Grid* grid){};

private:


};

#endif
